home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / tclMotif-1.4 / programs / progDH4.3 < prev    next >
Text File  |  1995-06-29  |  3KB  |  120 lines

  1.  
  2. # Dan Hellers program 4.3, p 99
  3. # show pixmaps, allow them to change colour, file selection to
  4. # change bitmaps. When doing this, use pixmaps in eg
  5. # /usr/lib/X11/bitmaps
  6.  
  7. global pixmap
  8.  
  9. set pixmap xlogo32
  10. xtAppInitialize -class Program
  11.  
  12. xmMainWindow .main managed -scrollBarDisplayPolicy as_needed \
  13.         -scrollingPolicy automatic
  14. # mainWindow .main
  15. xmLabel .main.label managed -labelType pixmap -labelPixmap $pixmap
  16.  
  17. # I am not supporting simple menu functions, so do this the long way
  18.  
  19. # top menu bar
  20. xmMenuBar .main.menuBar managed
  21. xmCascadeButton .main.menuBar.file managed \
  22.     -labelString File \
  23.     -mnemonic F
  24. xmCascadeButton .main.menuBar.edit managed \
  25.     -labelString Edit \
  26.     -mnemonic E
  27. xmCascadeButton .main.menuBar.help managed \
  28.      -labelString Help \
  29.     -mnemonic H
  30.  
  31. # file pulldown
  32. xmPulldownMenu .main.menuBar.fileMenu
  33. xmPushButton .main.menuBar.fileMenu.new managed \
  34.     -labelString "New..." \
  35.     -mnemonic N
  36. xmPushButton .main.menuBar.fileMenu.quit managed \
  37.      -labelString Quit \
  38.     -mnemonic Q
  39. .main.menuBar.file setValues -subMenuId .main.menuBar.fileMenu
  40.  
  41. # callbacks for file menu
  42. .main.menuBar.fileMenu.quit activateCallback "exit 0"
  43. .main.menuBar.fileMenu.new  activateCallback fileDialog
  44.  
  45. # edit pulldown
  46. xmPulldownMenu .main.menuBar.editMenu
  47. xmToggleButton .main.menuBar.editMenu.black managed \
  48.     -labelString Black \
  49.     -mnemonic k
  50. xmToggleButton .main.menuBar.editMenu.red managed \
  51.     -labelString Red \
  52.     -mnemonic R
  53. xmToggleButton .main.menuBar.editMenu.green managed\
  54.     -labelString Green \
  55.     -mnemonic G
  56. xmToggleButton .main.menuBar.editMenu.blue managed \
  57.     -labelString Blue \
  58.     -mnemonic B
  59.  
  60. # .main.menuBar.editMenu.black setValues -set True
  61. .main.menuBar.edit setValues -subMenuId .main.menuBar.editMenu
  62.  
  63. # callbacks for edit menu
  64. # note we use disarm rather than armed, because changed value
  65. # not set till then
  66. .main.menuBar.editMenu.black disarmCallback "change_colour black"
  67. .main.menuBar.editMenu.red   disarmCallback "change_colour red"
  68. .main.menuBar.editMenu.green disarmCallback "change_colour green"
  69. .main.menuBar.editMenu.blue  disarmCallback "change_colour blue"
  70.  
  71. .main.menuBar.editMenu setValues -radioBehavior True \
  72.                  -radioAlwaysOne True
  73.  
  74. # help pulldown
  75. xmPulldownMenu .main.menuBar.helpMenu managed
  76. xmPushButton .main.menuBar.helpMenu.help managed \
  77.     -labelString Help \
  78.     -mnemonic H
  79. .main.menuBar.help setValues -subMenuId .main.menuBar.helpMenu
  80.  
  81. .main.menuBar setValues -menuHelpWidget .main.menuBar.help
  82.  
  83. .main setValues -workWindow .main.label \
  84.         -menuBar .main.menuBar
  85.  
  86. proc change_colour {colour} {
  87.     global isSet
  88.     global pixmap
  89.  
  90.     .main.menuBar.editMenu.$colour getValues -set isSet
  91.     if {$isSet == "true"} {
  92.     .main.label setValues -foreground $colour
  93.     .main.label setValues -labelPixmap $pixmap
  94.     }
  95. }
  96.  
  97. proc fileDialog {} {
  98.     # does this command already exist - else create it
  99.     if {[llength [info commands .fileDialog]] > 0} {
  100.     .fileDialog manageChild
  101.     } else {
  102.     xmFileSelectionDialog .fileDialog managed
  103.     .fileDialog okCallback load_pixmap
  104.     .fileDialog cancelCallback ".fileDialog unmanageChild"
  105.     }
  106. }
  107.  
  108. proc load_pixmap {} {
  109.     global selection
  110.     global pixmap
  111.  
  112.     .fileDialog getValues -dirSpec selection
  113.     .main.label setValues -labelPixmap $selection
  114.     set pixmap $selection
  115. }
  116.  
  117. . realizeWidget
  118.  
  119. . mainLoop
  120.